﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BOL;
using DAL;
using System.IO;

namespace UILGestion.Admin
{
    public partial class ErrorListForm : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                menuCtrl1.loadMenuSeguridad();
                formatForm();
            }
        }

        private void formatForm()
        {
            
            //lista de errores 

            //string FolderSQLErrorWebPath = "App_Data\\WebErrors\\WebServerSideSqlError\\";
            //string FolderClientErrorWebPath = "App_Data\\WebErrors\\WebServerSideError\\"; 

            
            ////string directorio = Path.GetFullPath(Request.PhysicalApplicationPath);


            //string directorio1 = AppDomain.CurrentDomain.BaseDirectory;
            //string ruta = string.Concat(directorio1, FolderSQLErrorWebPath);

            ////RawUrlLabel.Text = directorio;
            ////    ErrorPriorityLabel.Text=directorio1;
            ////    WebApplicationName.Text = ruta;

            //    string[] sArchivos = Directory.GetFiles(ruta);

            //    List<FileInfo> archivos = new List<FileInfo>();
            //    int cant = 0;

            //    foreach (var archivo in sArchivos)
            //    {
            //        cant++;
            //        if (cant == 30)
            //        {
            //            break;
            //        }
            //        FileInfo archivoInfo = new FileInfo(archivo);
            //        archivos.Add(archivoInfo);
            //    }

            //    ListaErroresGridView.DataSource = 
            //        archivos.OrderByDescending(p => p.CreationTime);
            //    ListaErroresGridView.DataBind();


          
            
        }

        protected void btnContinueButton_Click(object sender, EventArgs e)
        {

        }

        protected void ListaErroresGridView_SelectedIndexChanged(object sender, EventArgs e)
        {
            BOL.ErrorWebBL errorBL = new ErrorWebBL();
            string archivo = ListaErroresGridView.SelectedDataKey[0].ToString();
            string ruta;
            string rut;
            if (nivelDropDownList.SelectedValue == "0")
            {
                //nivel Servidor de aplicaciones
                string FolderClientErrorWebPath = "App_Data\\WebErrors\\WebServerSideError\\";
                string directorio1 = AppDomain.CurrentDomain.BaseDirectory;
                ruta = string.Concat(directorio1, FolderClientErrorWebPath);
                rut = String.Concat(ruta, archivo);
            }
            else
            {
                //servidor de DB 
                string FolderSQLErrorWebPath = "App_Data\\WebErrors\\WebServerSideSqlError\\";
                string directorio1 = AppDomain.CurrentDomain.BaseDirectory;
                ruta = string.Concat(directorio1, FolderSQLErrorWebPath);
                rut = String.Concat(ruta, archivo);
                List<errorWebItemInfo> errorList = errorBL.getErrorWEBitem(rut);

                itemGridView.DataSource = errorList;
                itemGridView.DataBind();

            }



         

            //Request.Path(".//App_Data/WebErrors/WebServerSideSqlError/error-634467020377673742.xml");
            errorWebInfo error = errorBL.getErrorWEB(rut);
            

            RawUrlLabel.Text = error.RawUrl;
            ErrorPriorityLabel.Text = error.ErrorPriority;
            WebApplicationName.Text = error.WebApplicationName;
            WebHostName.Text = error.WebHostName;
            MessageLabel.Text = error.Message;
            //DetailLabel.Text = error.Detail;

           
            detalleUpdatePanel.Update();
        }

        protected void nivelDropDownList_SelectedIndexChanged(object sender, EventArgs e)
        {
            string ruta;
            if (nivelDropDownList.SelectedValue == "0")
            {
                //nivel Servidor de aplicaciones
                string FolderClientErrorWebPath = "App_Data\\WebErrors\\WebServerSideError\\";
                string directorio1 = AppDomain.CurrentDomain.BaseDirectory;
                ruta = string.Concat(directorio1, FolderClientErrorWebPath);
            }
            else
            { 
                //servidor de DB
                string FolderSQLErrorWebPath = "App_Data\\WebErrors\\WebServerSideSqlError\\";
                string directorio1 = AppDomain.CurrentDomain.BaseDirectory;
                ruta = string.Concat(directorio1, FolderSQLErrorWebPath);
            }

                //string directorio = Path.GetFullPath(Request.PhysicalApplicationPath);


                string[] sArchivos = Directory.GetFiles(ruta);

                List<FileInfo> archivos = new List<FileInfo>();
                

                foreach (var archivo in sArchivos)
                {
                    FileInfo archivoInfo = new FileInfo(archivo);
                    archivos.Add(archivoInfo);
                }

                ListaErroresGridView.DataSource =
                    archivos.OrderByDescending(p => p.CreationTime).Take(30);
                ListaErroresGridView.DataBind();


            

        }
    }
}